package com.yy.permissions_general.module.system.schedule.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yy.permissions_general.module.system.schedule.entity.ScheduleJob;

import java.util.List;

/**
 * <p>
 * 定时任务 服务类
 * </p>
 *
 * @author YY
 * @since 2022-02-09
 */
public interface ScheduleJobService extends IService<ScheduleJob> {

    /**
    * 分页查询列表
    * @param scheduleJob
    * @return
    */
    Page<ScheduleJob> selectPageList(ScheduleJob scheduleJob, int limit, int page);

    /**
    * 新增数据
    * @param scheduleJob
    */
    int addScheduleJob(ScheduleJob scheduleJob);

    /**
    * 修改数据
    * @param scheduleJob
    */
    int editScheduleJob(ScheduleJob scheduleJob);

    /**
    * 查看详情
    * @param jobId
    * @return
    */
    ScheduleJob getDetailsById(String jobId);

    /**
    * 删除数据
    * @param jobId
    * @return
    */
    int deleteById(String jobId);

    /**
    * 批量删除
    * @param ids
    * @return
    */
    int deleteBatch(List<Long> ids);

    /**
     * 更新定时任务数据
     * @param scheduleJob
     */
    void updateScheduleJob(ScheduleJob scheduleJob);

    /**
     * 执行一次定时任务
     * @param jobId
     */
    void submitScheduleJob(String jobId);

    /**
     * 停止定时任务
     * @param jobId
     */
    void stopScheduleJob(String jobId);

    /**
     * 恢复定时任务
     * @param jobId
     */
    void resetScheduleJob(String jobId);
}

